import { BaseHelpProps } from '../../../functionalComponent';
import { IObject } from '../../../util';
import { OrgTreeType } from '../../org-tree';

export interface IProjectEngineeringBaseHelp extends BaseHelpProps {
  /**
   * @description       自定义弹出帮助的title
   */
  title?: string;
  /**
   * @description       是否显示组织树
   * @default           true
   */
  showTree?: boolean;
  /**
   * @description       表格列配置
   */
  columns?: IObject[];
  /**
   * @description 回填label，优先级低于labelField
   */
  displayField?: string;
  /**
   * @description       底部扩展组件
   */
  footer?: React.ReactNode;
  /**
   * @description       自定义用户请求
   */
  projectEngineeringRequest?: (params: any) => Promise<{ list: any[]; total: number | string }>;
  /**
   * @description       其他请求参数
   */
  projectEngineeringParams?: ProjectParamType[];
  /**
   * @description       是否开启多选模式
   * @default           false
   */
  multiple?: boolean;
  /**
   * @description       组织树的属性
   */
  treeProps?: OrgTreeType;
  // 下面三个属性兼容历史数据
  params?: OrgTreeType['params'];
  treeRequest?: OrgTreeType['treeRequest'];
  beforeRequest?: OrgTreeType['beforeRequest'];
}

interface ProjectParamType {
  containLowOrg?: boolean; // 跨单元是否开启，默认不开启
  dataAccessAuth?: boolean; // 数据权限控制是否开启，默认不开启
  enableManagerContrl?: boolean; // 管理员控制是否开启，默认不开启
  pageNum: number;
  pageSize: number;
  orgNo?: string; // 所属组织
  // orgIdList?: string[]; // 组织idList
  query?: string; // 项目编号、名称
}

export type IProjectEngineeringHelp = IProjectEngineeringBaseHelp & OrgTreeType;
